RS384 (JWK)
alg プロパティに RS256 を指定した場合の JSON Web Key (JWK) には、RSA キーペアを表現するために必要ないくつかのプロパティがあります。RS256 は RSA 署名アルゴリズムで SHA-256 ハッシュ関数を使用していることを示しています。
### 必須のプロパティ:
1. **kty (Key Type)**: キーのタイプを示すために必要です。RS256 の場合は、RSA を使用します。
2. **n (Modulus)**: RSA 公開鍵のモジュラスを表すために必要です。Base64 URL エンコードされた値です。
3. **e (Exponent)**: RSA 公開鍵の公開指数を表すために必要です。通常は AQAB や 65537 などの値が Base64 URL エンコードされて使用されます。
### オプショナルなプロパティ:
1. **use**: キーの使用目的(署名の場合は sig、暗号化の場合は enc)。
2. **kid (Key ID)**: キーを一意に識別するための識別子。
3. **alg**: このキーで使用されるアルゴリズム。RS256 がここに設定されます。
4. **key_ops**: キーが実行する操作の意図された用途を指定する文字列の配列(例:["sign", "verify"])。
5. **x5u (X.509 URL)**: X.509公開鍵証明書を取得するためのURL。
6. **x5c (X.509 Certificate Chain)**:X.509公開鍵証明書チェーン。Base64エンコードされた証明書の文字列の配列。
7. **x5t (X.509 Certificate SHA-1 Thumbprint)**: X.509公開鍵証明書のSHA-1サムプリント。
8. **x5t#S256 (X.509 Certificate SHA-256 Thumbprint)**: X.509公開鍵証明書のSHA-256サムプリント。
秘密鍵情報を含むJWKの場合、以下のプロパティも含まれることがありますが、これらは外部に公開すべきではありません。
1. **d (Private Exponent)**: RSA秘密鍵のプライベート指数。
2. その他、RSA秘密鍵のCRTパラメータ: p, q, dp, dq, qi など。
alg プロパティに RS256 を指定した JWK は、通常、署名を生成するために使用されるため、use プロパティは sig に設定されることが一般的です。また、kid は特に複数のキーを使用している場合に、どのキーが使用されたかを識別するのに役立ちます。これらのプロパティは、JWKを使用するシステムやプロトコルによって要件が異なる場合があるため、実際の使用状況に応じて適切なプロパティが選択されるべきです。
#jwk
#jose
#JWK